package com.md.value.html;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author 刘骄阳
 * 2024-05-15 23:40
 */
@Getter
@AllArgsConstructor
public enum LabelStyleType {
  /**
   * 边框
   */
  BORDER(0, "border"),
  /**
   * 字体颜色
   */
  COLOR(1, "color"),
  /**
   * 背景色
   */
  BACKGROUND_COLOR(2, "background-color"),
  /**
   * 字体大小
   */
  FONT_SIZE(3, "font-size"),
  /**
   * 字体加粗
   */
  FONT_WEIGHT(4, "font-weight"),
  /**
   * 字体样式
   */
  FONT_STYLE(5, "font-style"),
  /**
   * 字体风格
   */
  FONT_FAMILY(6, "font-family"),

  /**
   * 下划线,删除线
   */
  TEXT_DECORATION(7, "text-decoration"),

  /**
   * 垂直居中
   */
  VERTICAL_ALIGN(8, "vertical-align"),
  /**
   * 水平居中
   */
  TEXT_ALIGN(9, "text-align"),

  /**
   * 上边框
   */
  BORDER_TOP(10, "border-top"),
  /**
   * 有边框
   */
  BORDER_RIGHT(11, "border-right"),
  /**
   * 下边框
   */
  BORDER_BOTTOM(12, "border-bottom"),
  /**
   * 左边框
   */
  BORDER_LEFT(13, "border-left"),
  /**
   * 上内边距
   */
  MARGIN_TOP(14, "margin-top"),
  /**
   * 右内边距
   */
  MARGIN_RIGHT(15, "margin-right"),
  /**
   * 下内边距
   */
  MARGIN_BOTTOM(16, "margin-bottom"),
  /**
   * 左内边距
   */
  MARGIN_LEFT(17, "margin-left"),
  /**
   * 首行缩进
   */
  TEXT_INDENT(18, "text-indent"),
  /**
   * 宽
   */
  WIDTH(19, "width"),
  /**
   * 高
   */
  HEIGHT(20, "height"),
  /**
   * 最小高度
   */
  MIN_HEIGHT(21, "min-height"),
  /**
   * 谷歌
   */
  TRANSFORM_WEBKIT_TRANSFORM(22, "-webkit-transform"),
  /**
   * 火狐
   */
  TRANSFORM_MOZ_TRANSFORM(23, "-moz-transform"),
  /**
   * opera
   */
  TRANSFORM_O_TRANSFORM(24, "-o-transform"),
  /**
   * IE
   */
  TRANSFORM_WRITING_MODE(25, "writing-mode");

  static final Map<String, LabelStyleType> ENUM_MAP_STRING = Arrays.stream(LabelStyleType.values())
    .collect(Collectors.toMap(LabelStyleType::getStyleName, e -> e));
  private final Integer code;
  private final String styleName;

  public static LabelStyleType of(final String styleName) {
    return ENUM_MAP_STRING.get(styleName);
  }

}
